package cn.hss.set;

import java.util.HashSet;
import java.util.Set;

/**
 * @author 作者：HeShaoShuai
 * @Email 邮箱：2569819541@qq.com
 * @Date 日期：2023/4/27 14:05
 * @Package 包名：cn.hss.set
 * @Project 项目名：JavaSE
 * @Version 1.0
 */
public class HashValueTest {
	public static void main(String[] args) {
//		//创建学生对象
//		Student s1 = new Student("何少帅", 18);
//		System.out.println("s1对象的哈希值："+s1.hashCode());
//		//1.同一对象多次调用hashCode()方法返回的哈希值是相同的
////		for (int i=0;i<10;i++){
////			System.out.println("s1对象的哈希值："+s1.hashCode());
////		}
//		System.out.println("-------------");
//		Student s2 = new Student("何少帅", 18);
//		System.out.println("s2对象的哈希值："+s1.hashCode());
//		//综合上述s1,s2,对象所得到的哈希值得出：
//		//2.默认情况下，不同对象的哈希值是不相同的
//		String str1 = new String("abc");
//		String str2 = "abc";
//		System.out.println(str1.equals(str2));
//		System.out.println(str1.hashCode());
//		System.out.println(str2.hashCode());
//		//3.若想让两个对象的哈希值相同，需要重写Object类的equals()和hashCode()方法
		//set集合创建方式
		Set<Object> set = new HashSet<>();
		set.add("张三");
		set.add("李四");
		set.add("王五");
		set.add("马六");
		set.add("田七");
		set.add("钱八");
		set.add("赵九");
		//字符串重写了hashCode()方法，因此得到两个元素为相同元素
		set.add("李四");
		// 不允许出现重复元素
		System.out.println(set);
		System.out.println("---------------");
		Set<Object> hashSet = new HashSet<>();
		//向集合中添加学生对象
		hashSet.add(new Student("临春霞",30));
		hashSet.add(new Student("张曼玉",30));
		hashSet.add(new Student("楼的话",30));
		hashSet.add(new Student("寻悟空",300));
		hashSet.add(new Student("临春霞",30));
		System.out.println(hashSet.size());
		System.out.println(hashSet);
	}
}
